package com.iris.live.services.data.models;

import javax.persistence.*;
import java.math.BigDecimal;
import java.sql.Date;
import java.sql.Timestamp;

/**
 * Created by hyp on 2017/6/29.
 */
@SuppressWarnings("JpaDataSourceORMInspection")
@Entity
@Table(name = "car_transfer_log", schema = "iris_test", catalog = "")
public class CarTransferLogModel {
    private Integer id;
    private String inDealer = "";
    private String outDealer = "";
    private Integer stockCode;
    private Integer compareStockCode;
    private String customName;
    private String sc = "";
    private String reason = "";
    private String newCarSaleStatus;
    private Date internalApplyDate;
    private String internalApplyUser;
    private Date internalApprovalDate;
    private String internalApprovalUser;
    private Date externalApplyDate;
    private String externalApplyUser;
    private Date outConfirmDate;
    private String outConfirmUser;
    private Date invoiceIssuingDate;
    private String invoiceIssuingUser;
    private Date fundOutDate;
    private String fundOutUser;
    private Date fundInDate;
    private String fundInUser;
    private Date stockOutDate;
    private String stockOutUser;
    private Date stockInDate;
    private String stockInUser;
    private String customTel;
    private String isEmegency;
    private Date expectedLateInStockDate;
    private Date expectedLateMoneyInAccount;
    private Date expectedInStock;
    private Date expectedCustomPurchasing;
    private BigDecimal actualPaymentAmount;
    private Date actualPaymentDate;
    private Timestamp modifyDate;
    private String modifyUser;
    private String outInvoiceRemark;
    private BigDecimal moneyTransferdAmount = new BigDecimal("0.0");
    private Date moneyTransferdDate;
    private BigDecimal arrangedMoney = new BigDecimal("0.0");
    private String logisticsStatus = "";
    private String financialStatus = "";
    private Integer type;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    @Basic
    @Column(name = "in_dealer")
    public String getInDealer() {
        return inDealer;
    }

    public void setInDealer(String inDealer) {
        this.inDealer = inDealer;
    }

    @Basic
    @Column(name = "out_dealer")
    public String getOutDealer() {
        return outDealer;
    }

    public void setOutDealer(String outDealer) {
        this.outDealer = outDealer;
    }

    @Basic
    @Column(name = "stock_code")
    public Integer getStockCode() {
        return stockCode;
    }

    public void setStockCode(Integer stockCode) {
        this.stockCode = stockCode;
    }

    @Basic
    @Column(name = "compare_stock_code")
    public Integer getCompareStockCode() {
        return compareStockCode;
    }

    public void setCompareStockCode(Integer compareStockCode) {
        this.compareStockCode = compareStockCode;
    }

    @Basic
    @Column(name = "custom_name")
    public String getCustomName() {
        return customName;
    }

    public void setCustomName(String customName) {
        this.customName = customName;
    }

    @Basic
    @Column(name = "sc")
    public String getSc() {
        return sc;
    }

    public void setSc(String sc) {
        this.sc = sc;
    }

    @Basic
    @Column(name = "reason")
    public String getReason() {
        return reason;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }

    @Basic
    @Column(name = "new_car_sale_status")
    public String getNewCarSaleStatus() {
        return newCarSaleStatus;
    }

    public void setNewCarSaleStatus(String newCarSaleStatus) {
        this.newCarSaleStatus = newCarSaleStatus;
    }

    @Basic
    @Column(name = "internal_apply_date")
    public Date getInternalApplyDate() {
        return internalApplyDate;
    }

    public void setInternalApplyDate(Date internalApplyDate) {
        this.internalApplyDate = internalApplyDate;
    }

    @Basic
    @Column(name = "internal_apply_user")
    public String getInternalApplyUser() {
        return internalApplyUser;
    }

    public void setInternalApplyUser(String internalApplyUser) {
        this.internalApplyUser = internalApplyUser;
    }

    @Basic
    @Column(name = "internal_approval_date")
    public Date getInternalApprovalDate() {
        return internalApprovalDate;
    }

    public void setInternalApprovalDate(Date internalApprovalDate) {
        this.internalApprovalDate = internalApprovalDate;
    }

    @Basic
    @Column(name = "internal_approval_user")
    public String getInternalApprovalUser() {
        return internalApprovalUser;
    }

    public void setInternalApprovalUser(String internalApprovalUser) {
        this.internalApprovalUser = internalApprovalUser;
    }

    @Basic
    @Column(name = "external_apply_date")
    public Date getExternalApplyDate() {
        return externalApplyDate;
    }

    public void setExternalApplyDate(Date externalApplyDate) {
        this.externalApplyDate = externalApplyDate;
    }

    @Basic
    @Column(name = "external_apply_user")
    public String getExternalApplyUser() {
        return externalApplyUser;
    }

    public void setExternalApplyUser(String externalApplyUser) {
        this.externalApplyUser = externalApplyUser;
    }

    @Basic
    @Column(name = "out_confirm_date")
    public Date getOutConfirmDate() {
        return outConfirmDate;
    }

    public void setOutConfirmDate(Date outConfirmDate) {
        this.outConfirmDate = outConfirmDate;
    }

    @Basic
    @Column(name = "out_confirm_user")
    public String getOutConfirmUser() {
        return outConfirmUser;
    }

    public void setOutConfirmUser(String outConfirmUser) {
        this.outConfirmUser = outConfirmUser;
    }

    @Basic
    @Column(name = "invoice_issuing_date")
    public Date getInvoiceIssuingDate() {
        return invoiceIssuingDate;
    }

    public void setInvoiceIssuingDate(Date invoiceIssuingDate) {
        this.invoiceIssuingDate = invoiceIssuingDate;
    }

    @Basic
    @Column(name = "invoice_issuing_user")
    public String getInvoiceIssuingUser() {
        return invoiceIssuingUser;
    }

    public void setInvoiceIssuingUser(String invoiceIssuingUser) {
        this.invoiceIssuingUser = invoiceIssuingUser;
    }

    @Basic
    @Column(name = "fund_out_date")
    public Date getFundOutDate() {
        return fundOutDate;
    }

    public void setFundOutDate(Date fundOutDate) {
        this.fundOutDate = fundOutDate;
    }

    @Basic
    @Column(name = "fund_out_user")
    public String getFundOutUser() {
        return fundOutUser;
    }

    public void setFundOutUser(String fundOutUser) {
        this.fundOutUser = fundOutUser;
    }

    @Basic
    @Column(name = "fund_in_date")
    public Date getFundInDate() {
        return fundInDate;
    }

    public void setFundInDate(Date fundInDate) {
        this.fundInDate = fundInDate;
    }

    @Basic
    @Column(name = "fund_in_user")
    public String getFundInUser() {
        return fundInUser;
    }

    public void setFundInUser(String fundInUser) {
        this.fundInUser = fundInUser;
    }

    @Basic
    @Column(name = "stock_out_date")
    public Date getStockOutDate() {
        return stockOutDate;
    }

    public void setStockOutDate(Date stockOutDate) {
        this.stockOutDate = stockOutDate;
    }

    @Basic
    @Column(name = "stock_out_user")
    public String getStockOutUser() {
        return stockOutUser;
    }

    public void setStockOutUser(String stockOutUser) {
        this.stockOutUser = stockOutUser;
    }

    @Basic
    @Column(name = "stock_in_date")
    public Date getStockInDate() {
        return stockInDate;
    }

    public void setStockInDate(Date stockInDate) {
        this.stockInDate = stockInDate;
    }

    @Basic
    @Column(name = "stock_in_user")
    public String getStockInUser() {
        return stockInUser;
    }

    public void setStockInUser(String stockInUser) {
        this.stockInUser = stockInUser;
    }

    @Basic
    @Column(name = "custom_tel")
    public String getCustomTel() {
        return customTel;
    }

    public void setCustomTel(String customTel) {
        this.customTel = customTel;
    }

    @Basic
    @Column(name = "is_emegency")
    public String getIsEmegency() {
        return isEmegency;
    }

    public void setIsEmegency(String isEmegency) {
        this.isEmegency = isEmegency;
    }

    @Basic
    @Column(name = "expectedLateInStockDate")
    public Date getExpectedLateInStockDate() {
        return expectedLateInStockDate;
    }

    public void setExpectedLateInStockDate(Date expectedLateInStockDate) {
        this.expectedLateInStockDate = expectedLateInStockDate;
    }

    @Basic
    @Column(name = "expectedLateMoneyInAccount")
    public Date getExpectedLateMoneyInAccount() {
        return expectedLateMoneyInAccount;
    }

    public void setExpectedLateMoneyInAccount(Date expectedLateMoneyInAccount) {
        this.expectedLateMoneyInAccount = expectedLateMoneyInAccount;
    }

    @Basic
    @Column(name = "expectedInStock")
    public Date getExpectedInStock() {
        return expectedInStock;
    }

    public void setExpectedInStock(Date expectedInStock) {
        this.expectedInStock = expectedInStock;
    }

    @Basic
    @Column(name = "expectedCustomPurchasing")
    public Date getExpectedCustomPurchasing() {
        return expectedCustomPurchasing;
    }

    public void setExpectedCustomPurchasing(Date expectedCustomPurchasing) {
        this.expectedCustomPurchasing = expectedCustomPurchasing;
    }

    @Basic
    @Column(name = "actual_payment_amount")
    public BigDecimal getActualPaymentAmount() {
        return actualPaymentAmount;
    }

    public void setActualPaymentAmount(BigDecimal actualPaymentAmount) {
        this.actualPaymentAmount = actualPaymentAmount;
    }

    @Basic
    @Column(name = "actual_payment_date")
    public Date getActualPaymentDate() {
        return actualPaymentDate;
    }

    public void setActualPaymentDate(Date actualPaymentDate) {
        this.actualPaymentDate = actualPaymentDate;
    }

    @Basic
    @Column(name = "modify_date")
    public Timestamp getModifyDate() {
        return modifyDate;
    }

    public void setModifyDate(Timestamp modifyDate) {
        this.modifyDate = modifyDate;
    }

    @Basic
    @Column(name = "modify_user")
    public String getModifyUser() {
        return modifyUser;
    }

    public void setModifyUser(String modifyUser) {
        this.modifyUser = modifyUser;
    }

    @Basic
    @Column(name = "out_invoice_remark")
    public String getOutInvoiceRemark() {
        return outInvoiceRemark;
    }

    public void setOutInvoiceRemark(String outInvoiceRemark) {
        this.outInvoiceRemark = outInvoiceRemark;
    }

    @Basic
    @Column(name = "money_transferd_amount")
    public BigDecimal getMoneyTransferdAmount() {
        return moneyTransferdAmount;
    }

    public void setMoneyTransferdAmount(BigDecimal moneyTransferdAmount) {
        this.moneyTransferdAmount = moneyTransferdAmount;
    }

    @Basic
    @Column(name = "money_transferd_date")
    public Date getMoneyTransferdDate() {
        return moneyTransferdDate;
    }

    public void setMoneyTransferdDate(Date moneyTransferdDate) {
        this.moneyTransferdDate = moneyTransferdDate;
    }

    @Basic
    @Column(name = "arranged_money")
    public BigDecimal getArrangedMoney() {
        return arrangedMoney;
    }

    public void setArrangedMoney(BigDecimal arrangedMoney) {
        this.arrangedMoney = arrangedMoney;
    }

    @Basic
    @Column(name = "logistics_status")
    public String getLogisticsStatus() {
        return logisticsStatus;
    }

    public void setLogisticsStatus(String logisticsStatus) {
        this.logisticsStatus = logisticsStatus;
    }

    @Basic
    @Column(name = "financial_status")
    public String getFinancialStatus() {
        return financialStatus;
    }

    public void setFinancialStatus(String financialStatus) {
        this.financialStatus = financialStatus;
    }

    @Basic
    @Column(name = "type")
    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        CarTransferLogModel that = (CarTransferLogModel) o;

        if (id != null ? !id.equals(that.id) : that.id != null) return false;
        if (inDealer != null ? !inDealer.equals(that.inDealer) : that.inDealer != null) return false;
        if (outDealer != null ? !outDealer.equals(that.outDealer) : that.outDealer != null) return false;
        if (stockCode != null ? !stockCode.equals(that.stockCode) : that.stockCode != null) return false;
        if (compareStockCode != null ? !compareStockCode.equals(that.compareStockCode) : that.compareStockCode != null)
            return false;
        if (customName != null ? !customName.equals(that.customName) : that.customName != null) return false;
        if (sc != null ? !sc.equals(that.sc) : that.sc != null) return false;
        if (reason != null ? !reason.equals(that.reason) : that.reason != null) return false;
        if (newCarSaleStatus != null ? !newCarSaleStatus.equals(that.newCarSaleStatus) : that.newCarSaleStatus != null)
            return false;
        if (internalApplyDate != null ? !internalApplyDate.equals(that.internalApplyDate) : that.internalApplyDate != null)
            return false;
        if (internalApplyUser != null ? !internalApplyUser.equals(that.internalApplyUser) : that.internalApplyUser != null)
            return false;
        if (internalApprovalDate != null ? !internalApprovalDate.equals(that.internalApprovalDate) : that.internalApprovalDate != null)
            return false;
        if (internalApprovalUser != null ? !internalApprovalUser.equals(that.internalApprovalUser) : that.internalApprovalUser != null)
            return false;
        if (externalApplyDate != null ? !externalApplyDate.equals(that.externalApplyDate) : that.externalApplyDate != null)
            return false;
        if (externalApplyUser != null ? !externalApplyUser.equals(that.externalApplyUser) : that.externalApplyUser != null)
            return false;
        if (outConfirmDate != null ? !outConfirmDate.equals(that.outConfirmDate) : that.outConfirmDate != null)
            return false;
        if (outConfirmUser != null ? !outConfirmUser.equals(that.outConfirmUser) : that.outConfirmUser != null)
            return false;
        if (invoiceIssuingDate != null ? !invoiceIssuingDate.equals(that.invoiceIssuingDate) : that.invoiceIssuingDate != null)
            return false;
        if (invoiceIssuingUser != null ? !invoiceIssuingUser.equals(that.invoiceIssuingUser) : that.invoiceIssuingUser != null)
            return false;
        if (fundOutDate != null ? !fundOutDate.equals(that.fundOutDate) : that.fundOutDate != null) return false;
        if (fundOutUser != null ? !fundOutUser.equals(that.fundOutUser) : that.fundOutUser != null) return false;
        if (fundInDate != null ? !fundInDate.equals(that.fundInDate) : that.fundInDate != null) return false;
        if (fundInUser != null ? !fundInUser.equals(that.fundInUser) : that.fundInUser != null) return false;
        if (stockOutDate != null ? !stockOutDate.equals(that.stockOutDate) : that.stockOutDate != null) return false;
        if (stockOutUser != null ? !stockOutUser.equals(that.stockOutUser) : that.stockOutUser != null) return false;
        if (stockInDate != null ? !stockInDate.equals(that.stockInDate) : that.stockInDate != null) return false;
        if (stockInUser != null ? !stockInUser.equals(that.stockInUser) : that.stockInUser != null) return false;
        if (customTel != null ? !customTel.equals(that.customTel) : that.customTel != null) return false;
        if (isEmegency != null ? !isEmegency.equals(that.isEmegency) : that.isEmegency != null) return false;
        if (expectedLateInStockDate != null ? !expectedLateInStockDate.equals(that.expectedLateInStockDate) : that.expectedLateInStockDate != null)
            return false;
        if (expectedLateMoneyInAccount != null ? !expectedLateMoneyInAccount.equals(that.expectedLateMoneyInAccount) : that.expectedLateMoneyInAccount != null)
            return false;
        if (expectedInStock != null ? !expectedInStock.equals(that.expectedInStock) : that.expectedInStock != null)
            return false;
        if (expectedCustomPurchasing != null ? !expectedCustomPurchasing.equals(that.expectedCustomPurchasing) : that.expectedCustomPurchasing != null)
            return false;
        if (actualPaymentAmount != null ? !actualPaymentAmount.equals(that.actualPaymentAmount) : that.actualPaymentAmount != null)
            return false;
        if (actualPaymentDate != null ? !actualPaymentDate.equals(that.actualPaymentDate) : that.actualPaymentDate != null)
            return false;
        if (modifyDate != null ? !modifyDate.equals(that.modifyDate) : that.modifyDate != null) return false;
        if (modifyUser != null ? !modifyUser.equals(that.modifyUser) : that.modifyUser != null) return false;
        if (outInvoiceRemark != null ? !outInvoiceRemark.equals(that.outInvoiceRemark) : that.outInvoiceRemark != null)
            return false;
        if (moneyTransferdAmount != null ? !moneyTransferdAmount.equals(that.moneyTransferdAmount) : that.moneyTransferdAmount != null)
            return false;
        if (moneyTransferdDate != null ? !moneyTransferdDate.equals(that.moneyTransferdDate) : that.moneyTransferdDate != null)
            return false;
        if (arrangedMoney != null ? !arrangedMoney.equals(that.arrangedMoney) : that.arrangedMoney != null)
            return false;
        if (logisticsStatus != null ? !logisticsStatus.equals(that.logisticsStatus) : that.logisticsStatus != null)
            return false;
        if (financialStatus != null ? !financialStatus.equals(that.financialStatus) : that.financialStatus != null)
            return false;
        if (type != null ? !type.equals(that.type) : that.type != null) return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result = id != null ? id.hashCode() : 0;
        result = 31 * result + (inDealer != null ? inDealer.hashCode() : 0);
        result = 31 * result + (outDealer != null ? outDealer.hashCode() : 0);
        result = 31 * result + (stockCode != null ? stockCode.hashCode() : 0);
        result = 31 * result + (compareStockCode != null ? compareStockCode.hashCode() : 0);
        result = 31 * result + (customName != null ? customName.hashCode() : 0);
        result = 31 * result + (sc != null ? sc.hashCode() : 0);
        result = 31 * result + (reason != null ? reason.hashCode() : 0);
        result = 31 * result + (newCarSaleStatus != null ? newCarSaleStatus.hashCode() : 0);
        result = 31 * result + (internalApplyDate != null ? internalApplyDate.hashCode() : 0);
        result = 31 * result + (internalApplyUser != null ? internalApplyUser.hashCode() : 0);
        result = 31 * result + (internalApprovalDate != null ? internalApprovalDate.hashCode() : 0);
        result = 31 * result + (internalApprovalUser != null ? internalApprovalUser.hashCode() : 0);
        result = 31 * result + (externalApplyDate != null ? externalApplyDate.hashCode() : 0);
        result = 31 * result + (externalApplyUser != null ? externalApplyUser.hashCode() : 0);
        result = 31 * result + (outConfirmDate != null ? outConfirmDate.hashCode() : 0);
        result = 31 * result + (outConfirmUser != null ? outConfirmUser.hashCode() : 0);
        result = 31 * result + (invoiceIssuingDate != null ? invoiceIssuingDate.hashCode() : 0);
        result = 31 * result + (invoiceIssuingUser != null ? invoiceIssuingUser.hashCode() : 0);
        result = 31 * result + (fundOutDate != null ? fundOutDate.hashCode() : 0);
        result = 31 * result + (fundOutUser != null ? fundOutUser.hashCode() : 0);
        result = 31 * result + (fundInDate != null ? fundInDate.hashCode() : 0);
        result = 31 * result + (fundInUser != null ? fundInUser.hashCode() : 0);
        result = 31 * result + (stockOutDate != null ? stockOutDate.hashCode() : 0);
        result = 31 * result + (stockOutUser != null ? stockOutUser.hashCode() : 0);
        result = 31 * result + (stockInDate != null ? stockInDate.hashCode() : 0);
        result = 31 * result + (stockInUser != null ? stockInUser.hashCode() : 0);
        result = 31 * result + (customTel != null ? customTel.hashCode() : 0);
        result = 31 * result + (isEmegency != null ? isEmegency.hashCode() : 0);
        result = 31 * result + (expectedLateInStockDate != null ? expectedLateInStockDate.hashCode() : 0);
        result = 31 * result + (expectedLateMoneyInAccount != null ? expectedLateMoneyInAccount.hashCode() : 0);
        result = 31 * result + (expectedInStock != null ? expectedInStock.hashCode() : 0);
        result = 31 * result + (expectedCustomPurchasing != null ? expectedCustomPurchasing.hashCode() : 0);
        result = 31 * result + (actualPaymentAmount != null ? actualPaymentAmount.hashCode() : 0);
        result = 31 * result + (actualPaymentDate != null ? actualPaymentDate.hashCode() : 0);
        result = 31 * result + (modifyDate != null ? modifyDate.hashCode() : 0);
        result = 31 * result + (modifyUser != null ? modifyUser.hashCode() : 0);
        result = 31 * result + (outInvoiceRemark != null ? outInvoiceRemark.hashCode() : 0);
        result = 31 * result + (moneyTransferdAmount != null ? moneyTransferdAmount.hashCode() : 0);
        result = 31 * result + (moneyTransferdDate != null ? moneyTransferdDate.hashCode() : 0);
        result = 31 * result + (arrangedMoney != null ? arrangedMoney.hashCode() : 0);
        result = 31 * result + (logisticsStatus != null ? logisticsStatus.hashCode() : 0);
        result = 31 * result + (financialStatus != null ? financialStatus.hashCode() : 0);
        result = 31 * result + (type != null ? type.hashCode() : 0);
        return result;
    }
}
